﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace CamadaDados
{
    public class video
    {

        DB_CASAIS conexao = new DB_CASAIS();

        public void InicializarConexao(object banco)
        {
            ((DB_CASAIS)conexao).Connection.Open();
        }

        public void FecharConexao(object banco)
        {
            ((DB_CASAIS)conexao).Connection.Close();
        }

        public List<tb_video> ListarVideos()
        {
            try
            {
                InicializarConexao(conexao);
                var listVideo = conexao.tb_video.ToList();
                return listVideo;
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
           
        }

        public IEnumerable<tb_video> ListarVideoDestaque()
        {
            try
            {
                InicializarConexao(conexao);
                var ListVideo =
                    conexao.tb_video.Where(q => q.CO_SITUACAO == 1).OrderByDescending(
                        q => q.DT_CADASTRO).ToList().Take(6);
                return ListVideo;
            }
            catch (Exception)
            {
                
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public void SalvarVideo(tb_video objVideo)
        {
            try
            {
                InicializarConexao(conexao);
                conexao.AddTotb_video(objVideo);
                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
           
        }

        public void ExcluirVideo(int intCodVideo)
        {
            try
            {
                InicializarConexao(conexao);
                var objVideo = conexao.tb_video.Where(q => q.CO_VIDEO == intCodVideo).ToList().FirstOrDefault();
                conexao.DeleteObject(objVideo);
                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public void AlterarVideo(tb_video objVideo)
        {
            try
            {
                InicializarConexao(conexao);
                var objVideoEditar = conexao.tb_video.Where(q => q.CO_VIDEO == objVideo.CO_VIDEO).ToList().FirstOrDefault();
                objVideoEditar.DS_LINK = objVideo.DS_LINK;
                objVideoEditar.DS_DESCRICAO = objVideo.DS_DESCRICAO;
                objVideoEditar.CO_SITUACAO = objVideo.CO_SITUACAO;
                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            
        }

        public void MudarStatus(int intCodVideo)
        {
            try
            {
                InicializarConexao(conexao);

                var objVideo = conexao.tb_video.Where(q => q.CO_VIDEO == intCodVideo).ToList().FirstOrDefault();

                if (objVideo.CO_SITUACAO == 0)
                {
                    objVideo.CO_SITUACAO = 1;
                }
                else
                {
                    objVideo.CO_SITUACAO = 0;
                }

                conexao.SaveChanges();
            }
            catch (Exception)
            {
                    
                throw;
            }
            finally
            {
                FecharConexao(conexao);
            }
            

        }
    }
}